var im = 0;
toast("音量上停止；音量下开始、暂停、继续");
threads.start(function() {
    while (true) {
        if (im == 1) {
            lsx();
            toastLog("弹奏结束")
            exit();
        } else {
            sleep(1000);
        }
        sleep(1000);
    }
});
音量 = true; //是否开始音量控制
if (音量 == true) {
    //新线程end
    events.observeKey();
    events.setKeyInterceptionEnabled("volume_down", true);
    events.setKeyInterceptionEnabled("volume_up", true);

    events.onKeyDown("volume_up", function(event) {
        toastLog("结束歌曲")
    engines.stopAll();
    });
    events.onKeyDown("volume_down", () => {
        log("音量下键被按下");
        if (im == 1) {
            im = 0;
            toast("暂停")
        } else {
            im = 1;
            toast("开始，继续")
        }

    });
    //toast("666");
    sleep(1000);
}

function lsx() {

    m = Music.tracks
    var sz = []
    for (c = 0; c < m.length; c++) {
        var sz = sz.concat(m[c].notes)
    }
    var d = sz.sort(function(a, b) {
        return a.time - b.time
    })
    var 黑键 = [22, 25, 27, 30, 32, 34, 37, 39, 42, 44, 46, 49, 51, 54, 56, 58, 61, 63, 66, 68, 70, 73, 75, 78, 80, 82, 85, 87, 90, 92, 94, 97, 99, 102, 104, 106, ];

    var 黑键数量 = 0;
    var 升一个调后黑键数量 = 0;
    var 升两个调后黑键数量 = 0;
    var 升三个调后黑键数量 = 0;
    var 升四个调后黑键数量 = 0;
    var 升五个调后黑键数量 = 0;
    var 升六个调后黑键数量 = 0;
    var 升七个调后黑键数量 = 0;
    var 升八个调后黑键数量 = 0;
    var 升九个调后黑键数量 = 0;
    var 升十个调后黑键数量 = 0;
    var 升十一个调后黑键数量 = 0;
    for (var i in d) {
        谱子 = d[i].midi;
        switch (谱子) {
            case 22:
                黑键数量 = 黑键数量 + 1;
                break;
            case 25:
                黑键数量 = 黑键数量 + 1;
                break;
            case 27:
                黑键数量 = 黑键数量 + 1;
                break;
            case 30:
                黑键数量 = 黑键数量 + 1;
                break;
            case 32:
                黑键数量 = 黑键数量 + 1;
                break;
            case 34:
                黑键数量 = 黑键数量 + 1;
                break;
            case 37:
                黑键数量 = 黑键数量 + 1;
                break;
            case 39:
                黑键数量 = 黑键数量 + 1;
                break;
            case 42:
                黑键数量 = 黑键数量 + 1;
                break;
            case 44:
                黑键数量 = 黑键数量 + 1;
                break;
            case 46:
                黑键数量 = 黑键数量 + 1;
                break;
            case 49:
                黑键数量 = 黑键数量 + 1;
                break;
            case 51:
                黑键数量 = 黑键数量 + 1;
                break;
            case 54:
                黑键数量 = 黑键数量 + 1;
                break;
            case 56:
                黑键数量 = 黑键数量 + 1;
                break;
            case 58:
                黑键数量 = 黑键数量 + 1;
                break;
            case 61:
                黑键数量 = 黑键数量 + 1;
                break;
            case 63:
                黑键数量 = 黑键数量 + 1
                break;
            case 66:
                黑键数量 = 黑键数量 + 1
                break;
            case 68:
                黑键数量 = 黑键数量 + 1
                break;
            case 70:
                黑键数量 = 黑键数量 + 1
                break;
            case 73:
                黑键数量 = 黑键数量 + 1
                break;
            case 75:
                黑键数量 = 黑键数量 + 1
                break;
            case 78:
                黑键数量 = 黑键数量 + 1
                break;
            case 80:
                黑键数量 = 黑键数量 + 1
                break;
            case 82:
                黑键数量 = 黑键数量 + 1
                break;
            case 85:
                黑键数量 = 黑键数量 + 1
                break;
            case 87:
                黑键数量 = 黑键数量 + 1
                break;
            case 90:
                黑键数量 = 黑键数量 + 1
                break;
            case 92:
                黑键数量 = 黑键数量 + 1
                break;
            case 94:
                黑键数量 = 黑键数量 + 1
                break;
            case 97:
                黑键数量 = 黑键数量 + 1
                break;
            case 99:
                黑键数量 = 黑键数量 + 1
                break;
            case 102:
                黑键数量 = 黑键数量 + 1
                break;
            case 104:
                黑键数量 = 黑键数量 + 1
                break;
            case 106:
                黑键数量 = 黑键数量 + 1
                break;

        }
        switch (谱子 + 1) {
            case 22:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 25:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 27:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 30:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 32:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 34:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 37:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 39:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 42:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 44:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 46:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 49:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 51:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 54:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 56:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 58:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 61:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 63:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 66:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 68:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 70:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 73:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 75:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 78:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 80:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 82:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 85:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 87:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 90:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 92:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 94:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 97:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 99:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 102:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 104:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
            case 106:
                升一个调后黑键数量 = 升一个调后黑键数量 + 1
                break;
        }
        switch (谱子 + 2) {
            case 22:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 25:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 27:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 30:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 32:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 34:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 37:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 39:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 42:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 44:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 46:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 49:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 51:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 54:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 56:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 58:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 61:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 63:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 66:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 68:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 70:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 73:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 75:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 78:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 80:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 82:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 85:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 87:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 90:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 92:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 94:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 97:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 99:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 102:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 104:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
            case 106:
                升两个调后黑键数量 = 升两个调后黑键数量 + 1
                break;
        }
        switch (谱子 + 3) {
            case 22:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 25:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 27:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 30:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 32:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 34:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 37:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 39:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 42:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 44:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 46:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 49:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 51:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 54:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 56:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 58:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 61:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 63:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 66:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 68:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 70:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 73:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 75:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 78:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 80:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 82:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 85:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 87:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 90:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 92:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 94:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 97:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 99:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 102:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 104:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
            case 106:
                升三个调后黑键数量 = 升三个调后黑键数量 + 1
                break;
        }
        switch (谱子 + 4) {
            case 22:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 25:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 27:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 30:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 32:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 34:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 37:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 39:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 42:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 44:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 46:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 49:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 51:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 54:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 56:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 58:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 61:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 63:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 66:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 68:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 70:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 73:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 75:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 78:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 80:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 82:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 85:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 87:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 90:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 92:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 94:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 97:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 99:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 102:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 104:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
            case 106:
                升四个调后黑键数量 = 升四个调后黑键数量 + 1
                break;
        }
        switch (谱子 + 5) {
            case 22:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 25:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 27:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 30:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 32:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 34:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 37:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 39:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 42:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 44:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 46:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 49:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 51:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 54:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 56:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 58:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 61:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 63:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 66:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 68:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 70:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 73:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 75:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 78:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 80:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 82:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 85:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 87:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 90:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 92:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 94:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 97:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 99:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 102:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 104:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
            case 106:
                升五个调后黑键数量 = 升五个调后黑键数量 + 1
                break;
        }
        switch (谱子 + 6) {
            case 22:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 25:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 27:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 30:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 32:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 34:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 37:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 39:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 42:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 44:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 46:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 49:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 51:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 54:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 56:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 58:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 61:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 63:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 66:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 68:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 70:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 73:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 75:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 78:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 80:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 82:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 85:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 87:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 90:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 92:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 94:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 97:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 99:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 102:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 104:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
            case 106:
                升六个调后黑键数量 = 升六个调后黑键数量 + 1
                break;
        }
        switch (谱子 + 7) {
            case 22:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 25:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 27:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 30:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 32:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 34:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 37:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 39:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 42:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 44:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 46:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 49:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 51:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 54:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 56:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 58:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 61:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 63:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 66:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 68:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 70:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 73:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 75:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 78:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 80:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 82:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 85:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 87:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 90:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 92:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 94:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 97:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 99:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 102:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 104:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
            case 106:
                升七个调后黑键数量 = 升七个调后黑键数量 + 1
                break;
        }
        switch (谱子 + 8) {
            case 22:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 25:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 27:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 30:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 32:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 34:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 37:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 39:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 42:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 44:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 46:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 49:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 51:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 54:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 56:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 58:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 61:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 63:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 66:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 68:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 70:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 73:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 75:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 78:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 80:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 82:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 85:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 87:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 90:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 92:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 94:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 97:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 99:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 102:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 104:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
            case 106:
                升八个调后黑键数量 = 升八个调后黑键数量 + 1
                break;
        }
        switch (谱子 + 9) {
            case 22:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 25:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 27:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 30:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 32:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 34:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 37:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 39:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 42:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 44:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 46:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 49:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 51:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 54:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 56:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 58:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 61:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 63:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 66:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 68:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 70:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 73:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 75:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 78:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 80:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 82:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 85:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 87:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 90:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 92:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 94:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 97:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 99:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 102:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 104:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
            case 106:
                升九个调后黑键数量 = 升九个调后黑键数量 + 1
                break;
        }
        switch (谱子 + 10) {
            case 22:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 25:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 27:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 30:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 32:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 34:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 37:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 39:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 42:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 44:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 46:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 49:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 51:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 54:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 56:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 58:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 61:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 63:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 66:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 68:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 70:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 73:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 75:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 78:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 80:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 82:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 85:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 87:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 90:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 92:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 94:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 97:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 99:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 102:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 104:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
            case 106:
                升十个调后黑键数量 = 升十个调后黑键数量 + 1
                break;
        }
        switch (谱子 + 11) {
            case 22:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 25:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 27:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 30:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 32:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 34:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 37:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 39:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 42:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 44:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 46:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 49:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 51:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 54:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 56:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 58:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 61:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 63:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 66:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 68:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 70:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 73:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 75:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 78:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 80:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 82:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 85:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 87:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 90:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 92:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 94:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 97:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 99:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 102:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 104:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
            case 106:
                升十一个调后黑键数量 = 升十一个调后黑键数量 + 1
                break;
        }



        arr = [黑键数量, 升一个调后黑键数量, 升两个调后黑键数量, 升三个调后黑键数量, 升四个调后黑键数量, 升五个调后黑键数量, 升六个调后黑键数量, 升七个调后黑键数量, 升八个调后黑键数量, 升九个调后黑键数量, 升十个调后黑键数量, 升十一个调后黑键数量]

        var max = Math.max.apply(null, arr);
        var min = Math.min.apply(null, arr);

        if (黑键数量 == min) {
            数字 = 0
            d[i].midi = 谱子 + 0
        } else if (升一个调后黑键数量 == min) {
            数字 = 1
            d[i].midi = 谱子 + 1
        } else if (升两个调后黑键数量 == min) {
            数字 = 2
            d[i].midi = 谱子 + 2
        } else if (升三个调后黑键数量 == min) {
            数字 = 3
            d[i].midi = 谱子 + 3
        } else if (升四个调后黑键数量 == min) {
            数字 = 4
            d[i].midi = 谱子 + 4
        } else if (升五个调后黑键数量 == min) {
            数字 = 5
            d[i].midi = 谱子 + 5
        } else if (升六个调后黑键数量 == min) {
            数字 = 6
            d[i].midi = 谱子 + 6
        } else if (升七个调后黑键数量 == min) {
            数字 = 7
            d[i].midi = 谱子 + 7
        } else if (升八个调后黑键数量 == min) {
            数字 = 8
            d[i].midi = 谱子 + 8
        } else if (升九个调后黑键数量 == min) {
            数字 = 9
            d[i].midi = 谱子 + 9
        } else if (升十个调后黑键数量 == min) {
            数字 = 10
            d[i].midi = 谱子 + 10
        } else if (升十一个调后黑键数量 == min) {
            数字 = 11
            d[i].midi = 谱子 + 11
        }

    }


    dd = d


    for (var i in dd) {
        e = dd[i].midi;
        switch (e) {
            case 21:
                e = 6;
                break;
            case 23:
                e = 7;
                break;
            case 24:
                e = 1;
                break;
            case 26:
                e = 2;
                break;
            case 28:
                e = 3;
                break;
            case 29:
                e = 4;
                break;
            case 31:
                e = 5;
                break;
            case 33:
                e = 6;
                break;
            case 35:
                e = 7;
                break;
            case 36:
                e = 1;
                break;
            case 38:
                e = 2;
                break;
            case 40:
                e = 3;
                break;
            case 41:
                e = 4;
                break;
            case 43:
                e = 5;
                break;
            case 45:
                e = 6;
                break;
            case 47:
                e = 7;
                break;
            case 48:
                e = 1;
                break;
            case 50:
                e = 2;
                break;
            case 52:
                e = 3;
                break;
            case 53:
                e = 4;
                break;
            case 55:
                e = 5;
                break;
            case 57:
                e = 6;
                break;
            case 59:
                e = 7;
                break;
            case 60:
                e = 8;
                break;
            case 62:
                e = 9;
                break;
            case 64:
                e = 10;
                break;
            case 65:
                e = 11;
                break;
            case 67:
                e = 12;
                break;
            case 69:
                e = 13;
                break;
            case 71:
                e = 14;
                break;
            case 72:
                e = 15;
                break;
            case 74:
                e = 16;
                break;
            case 76:
                e = 17;
                break;
            case 77:
                e = 18;
                break;
            case 79:
                e = 19;
                break;
            case 81:
                e = 20;
                break;
            case 83:
                e = 21;
                break;
            case 84:
                e = 15;
                break;
            case 86:
                e = 16;
                break;
            case 88:
                e = 17;
                break;
            case 89:
                e = 18;
                break;
            case 91:
                e = 19;
                break;
            case 93:
                e = 20;
                break;
            case 95:
                e = 21;
                break;
            case 96:
                e = 15;
                break;
            case 98:
                e = 16;
                break;
            case 100:
                e = 17;
                break;
            case 101:
                e = 18;
                break;
            case 103:
                e = 19;
                break;
            case 105:
                e = 20;
                break;
            case 107:
                e = 21;
                break;
            case 108:
                e = 15;
                break;
                //黑键
            case 22:
                e = 6;
                break;
            case 25:
                e = 1;
                break;
            case 27:
                e = 2;
                break;
            case 30:
                e = 4;
                break;
            case 32:
                e = 5;
                break;
            case 34:
                e = 6;
                break;
            case 37:
                e = 1;
                break;
            case 39:
                e = 2;
                break;
            case 42:
                e = 4;
                break;
            case 44:
                e = 5;
                break;
            case 46:
                e = 6;
                break;
            case 49:
                e = 1;
                break;
            case 51:
                e = 2;
                break;
            case 54:
                e = 4
                break;
            case 56:
                e = 5;
                break;
            case 58:
                e = 6;
                break;
            case 61:
                e = 8;
                break;
            case 63:
                e = 9;
                break;
            case 66:
                e = 11;
                break;
            case 68:
                e = 12;
                break;
            case 70:
                e = 13;
                break;
            case 73:
                e = 15;
                break;
            case 75:
                e = 16;
                break;
            case 78:
                e = 18;
                break;
            case 80:
                e = 19;
                break;
            case 82:
                e = 20;
                break;
            case 85:
                e = 15;
                break;
            case 87:
                e = 16;
                break;
            case 90:
                e = 18;
                break;
            case 92:
                e = 19;
                break;
            case 94:
                e = 20;
                break;
            case 97:
                e = 15;
                break;
            case 99:
                e = 16;
                break;
            case 102:
                e = 18;
                break;
            case 104:
                e = 19;
                break;
            case 106:
                e = 20;
                break;
        }
        dd[i].midi = e
        // log(d[i].midi)
        // log(e)
    }

    function autoWireResult(keyNumListTemp, n, t, result) {
        if (keyNumListTemp != null && keyNumListTemp.length > 0) {
            result.push([
                keyNumListTemp,
                n,
                t
            ]);
        } else {
            //取出最后一个结果
            var temp = result[result.length - 1];
        }
    }


    data = dd;
    var lastTime = 0;
    //定义转换的结果集并初始化
    var result = [];
    var keyNumListTemp = [];
    var key按住时间 = [];
    for (var i = 0; i < data.length; i++) {
        now = data[i];
        nowTime = now.time;
        sleeptime = Number(nowTime) - Number(lastTime);
        if (sleeptime >= 0.01) {
            autoWireResult(keyNumListTemp, key按住时间, sleeptime, result);
            keyNumListTemp = [];
            key按住时间 = [];
        }
        //里
        nowPitches = now.midi;
        //子
        now按住时间 = now.duration
        lastTime = nowTime;
        keyNumListTemp.push(Number(nowPitches));
        key按住时间.push(Number(now按住时间));
    }

    var list = result
    sW = false; //是否显示悬浮按钮
    let s = 1,
        xy = [],
        speedControl = 1,
        zuobiaoPath = "/sdcard/脚本/zuobiao21.txt";

    if (files.exists(zuobiaoPath)) { //如果机型适配过
        eval(files.read(zuobiaoPath)); //快速适配分辨率
    } else {
        setScreenMetrics(1080, 2340); //默认分辨率，以下按键位置基于此分辨率
        var x = [410, 680, 950, 1220, 1490, 1760, 2030];
        var y = [980, 870, 760];
        for (var i = 0; i < 21; i++) {
            xy.push(x[i % 7], y[parseInt(i / 7)])
        }
    };

    function ran(c) {
        c = c | 20;
        return Math.random() * c - c / 2

    };

    function pre(item) {
        let items = [],
            keys = item[0];
        if (item[2] - Math.max.apply(null, item[1]) > 0) {
            var pressTime = item[1];
            var sleepTime = item[2] - Math.max.apply(null, item[1]);
        } else {
            var a = Math.max.apply(null, item[1]);
            var b = item[2];
            var c = b / a
            for (i in item[1]) {
                item[1][i] = item[1][i] * c
            }
            var pressTime = item[1]
            var sleepTime = 0.001;
        }

        for (i in keys) {
            let id = keys[i],
                x = xy[id * 2 - 2] + ran();
            let press = pressTime[i];
            y = xy[id * 2 - 1] + ran();

            items.push([Math.round(press * 1000), [x, y],
                [x, y]
            ])
        };
        if (items.length > 0) {
            //log(items)
            gestures.apply(null, items)
        };
        sleep(Math.round(sleepTime * 1000));
    }

    if (sW == true) {
        sleep(1);
        var window = floaty.window(
            <frame>
                <vertical>
                    <button id="btn" text='暂停'/>
                    <horizontal>
                        <button id="speedLow" text='减速'w="80"/>
                        <button id="speedHigh" text='加速'w="80"/>
                    </horizontal>
                    <horizontal>
                        <button id="speed" text='x1'w="80"/>
                        <button id="stop" text='停止'w="80"/>
                    </horizontal>
                </vertical>
            </frame>);
        window.exitOnClose();
        window.btn.click(() => {
            if (window.btn.getText() != '暂停') {
                s = 1;
                window.btn.setText('暂停')
            } else {
                s = 0;
                window.btn.setText('继续')
            }
        })
        window.speedHigh.click(() => {
            speedControl = (speedControl * 10 + 1) / 10;
            window.speed.setText("x" + speedControl)
        })
        window.speedLow.click(() => {
            if (speedControl <= 0.1) {
                return
            };
            speedControl = (speedControl * 10 - 1) / 10;
            window.speed.setText("x" + speedControl)
        })
        window.speed.click(() => {
            speedControl = 1;
            window.speed.setText("x" + speedControl)
        })
        window.stop.click(() => {
            engines.stopAll()
        })
    }

    for (i in list) {
        pre(list[i]);
        while (im != 1) {
            sleep(100)
        }
    }
}